// 定义日志消息进行中间信息存储
#ifndef __M_MSG__
#define __M_MSG__
#include <iostream>
#include <string>
#include <thread>
#include "level.hpp"
#include "utils.hpp"

namespace wzh
{
    struct LogMag
    {
        time_t _ctime;           // 记录日志的时间
        LogLevel::values _level; // 日志等级
        size_t _line;            // 代码行号
        std::thread::id _tid;    // 线程ID
        std::string _file;       // 文件名
        std::string _logger;     // 日志器名称
        std::string _payload;    // 有效载荷，即日志的具体内容

        LogMag(){}; // 默认构造函数

        LogMag(LogLevel::values level, size_t line, const std::string file,
               const std::string logger, const std::string payload)
            : _ctime(util::Date::nowTime()), _level(level), _line(line),
              _tid(std::this_thread::get_id()), _file(file), _logger(logger), _payload(payload)
        {
        }
    };

}

#endif